/* 页面配置 */

.contain {
  background: linear-gradient(135deg, #686974, #25272c);
  overflow: hidden;
}

.title-wrapper {
  margin-top: 40vh;
  margin-left: calc(50vw - 90px);
  width: 180px;
  height: 180px;
  text-align: justify;
  text-align-last: justify;
  text-justify: distribute-all-lines;
  color: white;
  letter-spacing: 5px;
}

.title-wrapper .first {
  position: relative;
  font-size: 20px;
  margin-bottom: 10px;
  animation: upShow .3s .6s ease both;
}


.bg-web {
  background-color: #00a3f4;
}

.bg-android {
  background-color: #6ba143;
}

.bg-java {
  background-color: #ff6756;
}

.bg-ios {
  background-color: #ff6a9a;
}

.title-wrapper .second {
  position: relative;
  font-size: 35px;
  animation: downShow .3s .6s ease both;
}

.decorate {
  display: block;
  border-radius: 25px;
  width: 75vw;
  height: 50px;
  position: absolute;
  transform: rotate(60deg);
  transform-origin: left top;
}

.decorate-android {
  animation: decorateAndroid .6s 0s ease both;
}

.decorate-web {
  animation: decorateWeb .6s 0s ease both;
}

.decorate-ios {
  animation: decorateIos .6s 0s ease both;
}

.decorate-java {
  animation: decorateJava .6s 0s ease both;
}

.page2 .text {
  position: relative;
  width: 160px;
  height: 240px;
  left: calc(50vw - 80px);
  top: 150px;
  /* transform: scale(1.5); */
}

.page2 .title{
  position: absolute;
  top: 50px;
  font-size: 50px;
  color: white;
  left: calc(50vw - 150px);
}

input:-webkit-autofill {
  background: #00000000 !important;
}

.page2 .text .content {
  padding: 15px;
  display: block;
  width: 130px;
  height: 210px;
  text-indent: 24px;
  font-size: 10px;
  color: white;
}


.page2 .circle {
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  position: absolute;
}

.page2 .circle1 {
  left: 0px;
  bottom: 40px;
}

.page2 .circle2 {
  left: calc(100vw - 18px);
  bottom: 40px;
}

.page2 .circle3 {
  left: 40px;
  bottom: 0px;
}

.page2 .circle4 {
  left: calc(100vw - 40px - 18px);
  bottom: 0px;
}

.page2 .topOne{
  position: absolute;
  top: 36vh;
  left: -30vw;
  width: 250vw;
  height: 26vh;
  overflow: hidden;

}
.page2 .bottomOne{
  position: absolute;
  top: 66vh;
  left: -30vw;
  width: 250vw;
  height: 26vh;
  overflow: hidden;
}

.page2 .sc{
  /* text-align: center; */
  padding: 0.2rem 0.8rem;
  color: aliceblue;
  background-color: #686974;
  font-size: medium;
  overflow: hidden;
  border-radius: 8px;
}

.page2 .pageSquareT{
  position: relative;
  height: 23vh;
  width: 41vw;
  margin-left: 10vw;
  display: inline-block;
  animation: scrollTo linear 18s infinite;
}

.page2 .pageSquareB{
  position: relative;
  height: 23vh;
  width: 41vw;
  margin-left: 10vw;
  display: inline-block;
  animation: scrollTo linear 15s infinite;
}

.page3 .title {
  position: absolute;
  top: calc(100vh - 100px);
  font-size: 50px;
  color: white;
  left: calc(50vw - 25px);
}

.page3 .tree-wrapper {
  position: absolute;
  left: calc(50vw - 162px);
  top: 5vh;
}

.page3 .tree {
  animation: an2 3s forwards;
}

.page3 .branch1 {
  animation: an2 3s both;
  animation-delay: 1s;
}

.page3 .branch2 {
  animation: an2 3s both;
  animation-delay: 2s;
}

.page3 .branch3 {
  animation: an2 3s both;
  animation-delay: 3s;
}

.page3 .tag {
  display: block;
  position: absolute;
  width: 80px;
  height: 80px;
  font-size: 18px;
  color: white;
  text-align: center;
  line-height: 80px;
  border-radius: 50%;
}

.page3 .tag1 {
  top: calc(231px + 10vw);
  left: calc(50vw - 162px + 50px - 40px);
  animation: show 0.5s both;
  animation-delay: 1s;
}

.page3 .tag2 {
  top: calc(191px + 10vw);
  left: calc(50vw - 162px + 280px - 40px);
  animation: show 0.5s both;
  animation-delay: 2s;
}

.page3 .tag3 {
  top: calc(91px + 10vw);
  left: calc(50vw - 162px + 90px - 40px);
  animation: show 0.5s both;
  animation-delay: 3s;
}

.page3 .tag4 {
  top: calc(31px + 10vw);
  left: calc(50vw - 162px + 240px - 40px);
  animation: show 0.5s both;
  animation-delay: 4s;
}

.page3 .introduceDirection {
  mask-image: radial-gradient(circle, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 50%);
  -webkit-mask-image: radial-gradient(circle, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 50%);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  width: 100vw;
  height: 100vh;
  mask-size: 0px 0px;
  -webkit-mask-size:0px 0px ;
  display: none;
  user-select: none;
  position: relative;
  z-index: 10;
}

.page3 .introduceDirection.active, .page3 .introduceDirection.remove {
  display: block;
}

.page3 .introduceDirection.active.web {
  animation: ripple1_In 1s both 1;
}

.page3 .introduceDirection.remove.web {
  animation: ripple1_Out 1s both 1;
}

.page3 .introduceDirection.active.java {
  animation: ripple2_In 1s both 1;
}

.page3 .introduceDirection.remove.java {
  animation: ripple2_Out 1s both 1;
}

.page3 .introduceDirection.active.ios {
  animation: ripple3_In 1s both 1;
}

.page3 .introduceDirection.remove.ios {
  animation: ripple3_Out 1s both 1;
}

.page3 .introduceDirection.active.android {
  animation: ripple4_In 1s both 1;
}

.page3 .introduceDirection.remove.android {
  animation: ripple4_Out 1s both 1;
}

.page3 .introduceDirection h2 {
  text-align: center;
  color: white;
  padding: 50px 25px 25px 25px;
}

.page3 .introduceDirection p {
  color: white;
  font-size: 16px;
  text-indent: 32px;
  letter-spacing: 4px;
  padding: 0 32px;
}

.page3 .introduceDirection q {
  quotes: none;
  font-style: oblique;
  float: right;
  color: white;
  font-size: 14px;
  margin-top: 28px;
}
.page4 .text-3g {
  font-size: 35px;
  color: white;
  margin-bottom: 0.5rem;
}
.text-show {
  animation: show 0.5s linear both;
}

.page4 .text-3g {
  text-align: center;
  display: block;
}

.page4 .title {
  position: relative;
  top: 50px;
}

.decorate-line {
  display: flex;
  width: 120px;
  height: 12px;
  margin-left: calc(50% - 60px);
  transform: skewX(-45deg);
}

.decorate-line .block {
  display: block;
  width: 30px;
  height: 8px;
}
.bg-svg {
  position: absolute;
  top: 230px;
  left: calc(50vw - 80px);
  transform-origin: center;
  transform: scale(2);
  z-index: -1;
}

.bg-svg .line1 {
  stroke: #00a3f4;
  stroke-dasharray: 200, 600;
  animation: an1 6s infinite;
  animation-timing-function: linear;
}

.bg-svg .line2 {
  stroke: #6ba143;
  stroke-dasharray: 200, 600;
  animation: an1 6s infinite;
  animation-timing-function: linear;
}

.bg-svg .line3 {
  stroke: #ff6756;
  stroke-dasharray: 200, 600;
  animation: an1 6s infinite;
  animation-timing-function: linear;
}

.bg-svg .line4 {
  stroke: #ff6a9a;
  stroke-dasharray: 200, 600;
  animation: an1 6s infinite;
  animation-timing-function: linear;
}
/* 浮标配置项 */

.cursor {
  position: absolute;
  bottom: 15px;
  left: calc(50% - 9px);
  stroke: #999aa5;
  animation: show .3s .9s ease both, cursorDown 1.2s 1.2s infinite ease both;
}

  /* 登录界面 */


  .login-box {
    display: flex;
    flex-direction: column;
    align-content: center;
    position: absolute;
    left: 50%;
    top: 300px;
    transform: translate(-50%, -50%);
    width: 80%;
    margin: 0 auto;
    letter-spacing: 3px;
    font-size: 16px;
    color: #fff;
    max-width: 500px;
  }
  
  .login-box>.login-logo {
    width: 90%;
    margin: 0 auto 1rem;
    font-size: 30px;
    letter-spacing: 8px;
    color: #fff;
  }
  .tips {
    font-size: 0.8rem;
    margin: 0 1rem -0.5rem;
    text-align: right;
  }
  .err {
    color: #ff3b3b;
  }
  .invisible {
    opacity: 0;
  }
  .login-box>.input-group>.input-box {
    position: relative;
    display: flex;
    margin: 2.5rem auto;
    width: 90%;
  }
  .login-box>.input-group>.input-box>.text {
    position: absolute;
    color: #818080;
    left: 0px;
    font-size: 14px;
    letter-spacing: 1px;
  }
  
  .login-box>.input-group>.input-box>input {
    flex-grow: 1;
    background: none;
    outline: none;
    border: none;
    border-bottom: 1px solid #fff;
    font-size: 15px;
    color: inherit;
    padding: 4px 0;
    border-radius: 0;
  }
  
  .login-text-animation {
    animation: float-up 0.2s linear both;
  } 
  
  .btn-box {
    width: 90%;
    margin: auto;
  }
  
  .login.btn {
    position: relative;
    width: 10rem;
    height: 2rem;
    border-radius: 1rem;
    line-height: 2rem;
    user-select: none;
    background-color: #5f5f5f;
    /* border-radius: 5rem; */
    color: #fdfdfd;
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    margin: 1rem auto;
  }
  input:-webkit-autofill-selected {
    background: none !important;
  }
  
  .hide {
    display: none !important;
  }

  .btn-box-1 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    width: 3rem;
    height: 100%;
    justify-content: space-around;
}

.btn-box-1>span{
  position: relative;
  display: block;
  margin: auto;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 0.25rem;
}

.btn-box-1>.circle-1 {
  animation: load-1 1.5s ease-out infinite both;
}

.btn-box-1>.circle-2 {
  animation: load-2 1.5s ease-out infinite both;
}

.btn-box-1>.circle-3 {
  animation: load-3 1.5s ease-out infinite both;
}

.btn-box-1>.circle-4 {
  animation: load-4 1.5s ease-out infinite both;
}

/* 动画效果 */
@keyframes float-up {
  0% {
    top: 0;
  }
  100% {
    top: -1.5rem;
    color: #FFF;
  }
}

@keyframes load-1 {
  0% {
      height: 0.5rem;
  }

  20% {
      height: 2rem;
  }

  40% {
      height: 0.5rem;
  }

  100% {
      height: 0.5rem;
  }
}

@keyframes load-2 {
  0% {
      height: 0.5rem;
  }

  20% {
      height: 0.5rem;
  }

  40% {
      height: 2rem;
  }

  60% {
      height: 0.5rem;
  }

  100% {
      height: 0.5rem;
  }
}

@keyframes load-3 {
  0% {
      height: 0.5rem;
  }

  20% {
      height: 0.5rem;
  }

  40% {
      height: 0.5rem;
  }

  60% {
      height: 2rem;
  }

  80% {
      height: 0.5rem;
  }

  100% {
      top: 0;
  }
}

@keyframes load-4 {
  0% {
      height: 0.5rem;
  }

  20% {
      height: 0.5rem;
  }

  60% {
      height: 0.5rem;
  }

  80% {
      height: 2rem;
  }

  100% {
      height: 0.5rem;
  }
}

@keyframes decorateJava {
  0% {
    bottom: calc(53vw - 53vw - 30vw);
    left: calc(35px + 75vw + 37vw - 21vw);
  }
  100% {
    bottom: calc(53vw - 30vw);
    left: calc(35px + 75vw - 21vw);
  }
}

@keyframes decorateIos {
  0% {
    bottom: calc(53vw - 53vw);
    left: calc(35px + 75vw + 37vw + 3vw);
  }
  100% {
    bottom: calc(53vw);
    left: calc(35px + 75vw + 3vw);
  }
}

@keyframes decorateWeb {
  0% {
    top: calc(-53vw - 25vw);
    left: calc(35px - 37vw + 10vw);
  }
  100% {
    top: calc(-25vw);
    left: calc(35px + 10vw);
  }
}

@keyframes decorateAndroid {
  0% {
    top: calc(-53vw - 15vw);
    left: calc(35px - 37vw - 30vw);
  }
  100% {
    top: calc(-15vw);
    left: calc(35px - 30vw);
  }
}

@keyframes upShow {
  0% {
    top: -15px;
    opacity: 0;
  }
  100% {
    top: 0;
    opacity: 1;
  }
}

@keyframes downShow {
  0% {
    bottom: -15px;
    opacity: 0;
  }
  100% {
    bottom: 0;
    opacity: 1;
  }
}

@keyframes show {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes cursorDown {
  0% {
    bottom: 15px;
  }
  50% {
    bottom: 13px;
  }
  100% {
    bottom: 15px;
  }
}

@keyframes an1 {
  0% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -800;
  }
}

@keyframes an2 {
  0% {
    stroke-dasharray: 0, 700;
  }
  100% {
    stroke-dasharray: 700, 0;
  }
}

@keyframes ripple1_In {
  0% {
    mask-position: calc(50vw - 162px + 50px) calc(231px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 50px) calc(231px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
  100% {
    mask-position: calc(50vw - 162px + 50px - 750px) -490px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 50px - 750px) -490px;
    -webkit-mask-size: 1500px 1500px;
  }
}

@keyframes ripple1_Out {
  0% {
    mask-position: calc(50vw - 162px + 50px - 750px) -490px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 50px - 750px) -490px;
    -webkit-mask-size: 1500px 1500px;
  }
  100% {
    mask-position: calc(50vw - 162px + 50px) calc(231px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 50px) calc(231px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
}

@keyframes ripple2_In {
  0% {
    mask-position: calc(50vw - 162px + 280px) calc(191px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 280px) calc(191px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
  100% {
    mask-position: calc(50vw - 162px + 280px - 750px) -450px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 280px - 750px) -450px;
    -webkit-mask-size: 1500px 1500px;
  }
}

@keyframes ripple2_Out {
  0% {
    mask-position: calc(50vw - 162px + 280px - 750px) -450px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 280px - 750px) -450px;
    -webkit-mask-size: 1500px 1500px;
  }
  100% {
    mask-position: calc(50vw - 162px + 280px) calc(191px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 280px) calc(191px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
}

@keyframes ripple3_In {
  0% {
    mask-position: calc(50vw - 162px + 90px) calc(91px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 90px) calc(91px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
  100% {
    mask-position: calc(50vw - 162px + 90px - 750px) -500px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 90px - 750px) -500px;
    -webkit-mask-size: 1500px 1500px;
  }
}

@keyframes ripple3_Out {
  0% {
    mask-position: calc(50vw - 162px + 90px - 750px) -500px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 90px - 750px) -500px;
    -webkit-mask-size: 1500px 1500px;
  }
  100% {
    mask-position: calc(50vw - 162px + 90px) calc(91px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 90px) calc(91px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
}

@keyframes ripple4_In {
  0% {
    mask-position: calc(50vw - 162px + 240px) calc(31px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 240px) calc(31px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
  100% {
    mask-position: calc(50vw - 162px + 240px - 750px) -500px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 240px - 750px) -500px;
    -webkit-mask-size: 1500px 1500px;
  }
}

@keyframes ripple4_Out {
  0% {
    mask-position: calc(50vw - 162px + 240px - 750px) -500px;
    mask-size: 1500px 1500px;
    -webkit-mask-position: calc(50vw - 162px + 240px - 750px) -500px;
    -webkit-mask-size: 1500px 1500px;
  }
  100% {
    mask-position: calc(50vw - 162px + 240px) calc(31px + 15vw);
    mask-size: 0px 0px;
    -webkit-mask-position: calc(50vw - 162px + 240px) calc(31px + 15vw);
    -webkit-mask-size: 0px 0px;
  }
}

@keyframes scrollTo{
  0%{
    transform: translateX(-150vw);
  }
  85%{
    transform: translateX(140vw);
  }
  85.0000001%{
    transform: translateX(-200vw);
  }
  100%{
    transform: translateX(-150vw);
  }
}